package com.hsgene.pay.service;

import com.hsgene.common.util.result.ApiResult;
import com.hsgene.order.constants.v1.PaymentBusinessType;
import com.hsgene.pay.domain.PayMethod;

import java.util.List;
import java.util.Map;

/**
 * @author wxf
 * @date 2018/8/13 13:54
 **/
public interface OrderPayService {
    /**
     * 订单支付
     *
     * @param orderId   订单id
     * @param payType   支付类型
     * @param payAmount 支付金额
     */
    ApiResult<Map<String, Object>> orderPay(String orderId, String payType, int payAmount, PaymentBusinessType type);

    /**
     * 查询支付订单信息
     *
     * @param orderId    订单id
     * @param payOrderId 支付id
     * @return
     */
    Map<String, Object> queryPayOrder(String orderId, String payOrderId);

    /**
     * @param
     * @return List<PayMethodDto>
     * @description 获取支付方式列表
     * @author maodi
     * @createDate 2018/9/30 10:32
     */
    List<PayMethod> queryPayMethodList();

    /**
     * 支付回调
     *
     * @param paramMap
     * @return
     */
    String payCallback(Map<String, Object> paramMap);

    /**
     * 获取订单金额
     * @param orderId 订单id
     * @return
     */
    Double checkOrderAmount(String orderId);
}
